package myjava.inheritance._protected_;

public class Root {

   public static void main(String[] args) {

      Dad d = new Dad();
      Son sonInPackage = new Son();

      // # SAME PACKAGE SCENARIO #
      
      // protected si comporta come public quando la classe dalla cui si cerca di
      // accedere alla proprieta' fa parte dello stersso package
      System.out.println(d.foo);
      // stesso discorso qui: foo viene ereditato e si comporta come public!
      System.out.println(sonInPackage.foo);
      // e banalmente ...
      System.out.println(sonInPackage.getFoo());
   }
}